К бојење
| време | меморија | улаз | излаз |
|---|---|---|---|
| 0,15 s | 64 Mb | стандардни излаз | стандардни улаз |
Потребно је распоредити променљиве у регистре процесора. При том, је познато да неке променљиве не смеју да буду смештене у исти регистар (јер се користе истовремено). Написати програм који одређује најмањи број регистара потребан да се сместе све променљиве. На пример, у коду
x = a + b; y = x * b; return y;
Променљиве a и b као и променљиве
x и b не смеју бити смештене у исти регистар.
Могуће је употребити само два регистра. Прво се у регистар 1 смешта
променљива a, а у регистар 2 променљива b.
Након тога се вредност променљиве x смешта у регистар 1
(јер вредност променљиве a није надаље потребна). Након
тога се вредност променљиве y може сместити било у регистар
1, било у регистар 2, јер надаље нису потребни ни вредност променљиве
x ни вредност променљиве b. Једноставности
ради претпоставити да је граф сачињен од променљивих и од ограничења
између њих повезан.
Улаз
Са стандардног улаза се уноси број променљивих \(n\) (\(1 \leq n \leq 50\)). Након тога се до краја улаза уносе парови променљивих које не смеју да се сместе у исте регистре (променљиве се броје од \(0\) до \(n-1\)).
Излаз
На стандардни излаз исписати најмањи број регистара потребних да се све променљиве сместе.
Пример
Улаз
6 0 1 0 2 1 2 1 4 1 5 2 3 3 4 3 5 4 5
Излаз
3
Морате бити улоговани како бисте послали задатак на евалуацију.